
// -- compile fasm module & load
// -------------
void* compile_and_load(char* szSrcFileName, char *szFasmFoo);
// -------------


// -- register your vars & foos to access from fasm modules
// -------------
void *register_var(char* szVarName, void* pVar, int varType);
void *register_foo(char* szFooName, void* pFoo, char* fooType);
// -------------


// -- compiled & loaded modules access foos
// -------------
int modules_count();


void* module_by_name(char* mod_name);


char* get_module_name(void* mod);

char* get_module_doc(void* mod);

char* get_module_source(void* mod);

void* get_module_main_foo(void* mod);
// -------------


// -- retrieving module members
// -------------
void* get_module_member_by_index(void* mod, int idx);

void* get_module_member_by_name(void* mod, char* member_name);
// -------------




// -- module member access foos
// -------------
char* get_mod_member_name(void* mod_member);

char* get_mod_member_doc(void* mod_member);

char* get_mod_member_type(void* mod_member, char* type_buf);

char* get_mod_member_access(void* mod_member, char* access_buf);

void* get_mod_member_val(void* mod_member, char* pType);

void set_mod_member_val(void* mod_member, void* pval);

int call_mod_member(void* mod_member, int cpar, void** vpar);
// -------------

